/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package GUI;

import java.io.IOException;
import Problemas.*;
import Busquedas.*;
import java.util.ArrayList;
/**
 *
 * @author David
 */
public class Main {

    /**
     * @param args the command line arguments
     */


    public static void main(String[] args) throws IOException {
        // TODO code application logic here
        boolean fin=false;
        Inicial ini=new Inicial();


        Ventanas v=new Ventanas();
        Micromundo mundo=new Micromundo(0,0,0,0);
        boolean trama=ini.lanzaVentana();
        int posX=ini.getPosX();
        int posY=ini.getPosY();
        Vista vista=new Vista();
        Arista arista=new Arista(247);
        
        while (!fin){

           Problema principal=new Principal(v,mundo,vista,trama,posX,posY,arista);
           Busqueda general= new AEstrellaPP(principal);
           if(!trama) v.escribeTexto("ESPERE MIENTRAS SE GENERA LA SOLUCION!!!!!");
           
           //Busqueda general= new PrimeroProfundidad(principal);
            if (general.buscar(true)!=null){

                v.escribeTexto(principal.getSoluciones());
                v.escribeTexto("SOLUCION MICROMUNDO");
                v.escribeTexto(general.getCamino().toString());
                v.escribeTexto(general.getNombreOper().toString());
                //v.escribeTexto("Nodos Expandidos: " + general.getExpandidos().size());
                v.escribeTexto( "Coste del camino: " + general.getCosteCamino());
                v.escribeTexto("Tiempo(ms): "+ general.getTiempoTotal()+"\n");
                v.escribeTexto("-------SOLUCIONADO.-----------");
                v.escribeTexto("El significado del color de los planetas es la direccion elegida en cada paso:");
                v.escribeTexto("Azul=derecha, Verde=Izquierda,Amarillo=arriba, Rosa=abajo");
                ArrayList<Estado> camino=general.getCamino();
                ArrayList<String> operUsados=general.getNombreOper();
                mundo.dibujaSolucion(camino,operUsados);



               }else{
                    v.escribeTexto("NO LOGRO ENCONTRAR SOLUCION.");
                }



                fin=v.fin();

                if (!fin) v.limpiaTexto();

        }
    }


}
